This invention relates to a programmable multivalued ALU (arithmetic and logic unit), which is a fundamental building block for constructing a multivalued logic system, and which readily lends itself to integrated circuit techniques.
Extensive research in the field of multivalued logic and associated arithmetic circuits is underway with the aim of compensating for or overcoming the several limitations of 2-valued (binary) logic, which is the foundation of many digital circuit systems, the foremost of which is the computer. Whereas 2-valued logic deals with the two values 0 and 1 and the signals employed by a 2-valued logic circuit system have two levels corresponding to these two values, multivalued logic deals with three or more values and the signals used by a multivalued logic circuit system have three or more levels.
Multivalued logic (and a multivalued logic circuit system) has the following advantages over two-valued logic (and a two-valued logic circuit system):
1) It is possible to describe an indeterminate state between 0 and 1 (as by employing three values).
2) The wiring area on an IC substrate and the number of pins can be reduced to enable a higher degree of effective integration. In the case of 64 values, for instance, one sixth the wiring area of a two-valued logic circuit is sufficient.
3) The realization of a 10-valued (decimal) machine would make it possible to employ logic the same as that used by human beings, so that the encoders and decoders required by two-valued machines would be unnecessary.
The most fundamental building block for constructing a multivalued logic system having these advantages, particularly a system supplanting the conventional 2-valued computer, is a multivalued ALU. A multivalued ALU must be an ALU capable of performing any multivalued logical operation. There are ten types of multivalued logical operations even if we consider only those that are well known, such as MAX, MIN, addition, subtration, multiplication and division. For n values and r variables, the number of types of multivalued logical operations that exists is n raised to the n.sup.r power (i.e. n.sup.n.spsp.r). For example, if there are three values and two variables, the number of types of multivalued logical operations is 3.sup.3.spsp.2 ; if there are four values and two variables, the number of types of multivalued logical operations is approximately 4.3.times.10.sup.9. A multivalued ALU capable of executing such an enormous number of multivalued logical operations is virtually impossible to design in the ordinary manner.